home *** CD-ROM | disk | FTP | other *** search
Wrap
xxxxddddrrrr____ccccoooommmmpppplllleeeexxxx((((3333NNNN)))) xxxxddddrrrr____ccccoooommmmpppplllleeeexxxx((((3333NNNN)))) NNNNAAAAMMMMEEEE _xxxx_dddd_rrrr______cccc_oooo_mmmm_pppp_llll_eeee_xxxx: _xxxx_dddd_rrrr______aaaa_rrrr_rrrr_aaaa_yyyy, _xxxx_dddd_rrrr______bbbb_yyyy_tttt_eeee_ssss, _xxxx_dddd_rrrr______oooo_pppp_aaaa_qqqq_uuuu_eeee, _xxxx_dddd_rrrr______pppp_oooo_iiii_nnnn_tttt_eeee_rrrr, _xxxx_dddd_rrrr______rrrr_eeee_ffff_eeee_rrrr_eeee_nnnn_cccc_eeee, _xxxx_dddd_rrrr______ssss_tttt_rrrr_iiii_nnnn_gggg, _xxxx_dddd_rrrr______uuuu_nnnn_iiii_oooo_nnnn, _xxxx_dddd_rrrr______vvvv_eeee_cccc_tttt_oooo_rrrr, _xxxx_dddd_rrrr______wwww_rrrr_aaaa_pppp_ssss_tttt_rrrr_iiii_nnnn_gggg - library routines for external data representation DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN XDR library routines allow C programmers to describe complex data structures in a machine-independent fashion. Protocols such as remote procedure calls (RPC) use these routines to describe the format of the data. These routines are the XDR library routines for complex data structures. They require the creation of XDR stream [see _xxxx_dddd_rrrr______cccc_rrrr_eeee_aaaa_tttt_eeee(3N)]. RRRRoooouuuuttttiiiinnnneeeessss See _rrrr_pppp_cccc(3N) for the definition of the _XXXX_DDDD_RRRR data structure. _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_rrrr_pppp_cccc_////_xxxx_dddd_rrrr_...._hhhh_>>>> _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______aaaa_rrrr_rrrr_aaaa_yyyy_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_aaaa_dddd_dddd_rrrr______tttt _****_aaaa_rrrr_rrrr_pppp_,,,, _uuuu______iiii_nnnn_tttt _****_ssss_iiii_zzzz_eeee_pppp_,,,, _cccc_oooo_nnnn_ssss_tttt _uuuu______iiii_nnnn_tttt _mmmm_aaaa_xxxx_ssss_iiii_zzzz_eeee_,,,, _cccc_oooo_nnnn_ssss_tttt _uuuu______iiii_nnnn_tttt _eeee_llll_ssss_iiii_zzzz_eeee_,,,, _cccc_oooo_nnnn_ssss_tttt _xxxx_dddd_rrrr_pppp_rrrr_oooo_cccc______tttt _eeee_llll_pppp_rrrr_oooo_cccc_))))_;;;; _xxxx_dddd_rrrr______aaaa_rrrr_rrrr_aaaa_yyyy translates between variable-length arrays and their corresponding external representations. The parameter _a_r_r_p is the address of the pointer to the array, while _s_i_z_e_p is the address of the element count of the array; this element count cannot exceed _m_a_x_s_i_z_e. The parameter _e_l_s_i_z_e is the _ssss_iiii_zzzz_eeee_oooo_ffff each of the array's elements, and _e_l_p_r_o_c is an XDR routine that translates between the array elements' C form and their external representation. This routine returns _1111 if it succeeds, _0000 otherwise. _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______bbbb_yyyy_tttt_eeee_ssss_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_hhhh_aaaa_rrrr _****_****_ssss_pppp_,,,, _uuuu______iiii_nnnn_tttt _****_ssss_iiii_zzzz_eeee_pppp_,,,, _cccc_oooo_nnnn_ssss_tttt _uuuu______iiii_nnnn_tttt _mmmm_aaaa_xxxx_ssss_iiii_zzzz_eeee_))))_;;;; _xxxx_dddd_rrrr______bbbb_yyyy_tttt_eeee_ssss translates between counted byte strings and their external representations. The parameter _s_p is the address of the string pointer. The length of the string is located at address _s_i_z_e_p; strings cannot be longer than _m_a_x_s_i_z_e. This routine returns _1111 if it succeeds, _0000 otherwise. _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______oooo_pppp_aaaa_qqqq_uuuu_eeee_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_aaaa_dddd_dddd_rrrr______tttt _cccc_pppp_,,,, _cccc_oooo_nnnn_ssss_tttt _uuuu______iiii_nnnn_tttt _cccc_nnnn_tttt_))))_;;;; _xxxx_dddd_rrrr______oooo_pppp_aaaa_qqqq_uuuu_eeee translates between fixed size opaque data and its external representation. The parameter _c_p is the address of the opaque object, and _c_n_t is its size in bytes. This routine returns _1111 if it succeeds, _0000 otherwise. PPPPaaaaggggeeee 1111 xxxxddddrrrr____ccccoooommmmpppplllleeeexxxx((((3333NNNN)))) xxxxddddrrrr____ccccoooommmmpppplllleeeexxxx((((3333NNNN)))) _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______pppp_oooo_iiii_nnnn_tttt_eeee_rrrr_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_hhhh_aaaa_rrrr _****_****_oooo_bbbb_jjjj_pppp_pppp_,,,, _uuuu______iiii_nnnn_tttt _oooo_bbbb_jjjj_ssss_iiii_zzzz_eeee_,,,, _cccc_oooo_nnnn_ssss_tttt _xxxx_dddd_rrrr_pppp_rrrr_oooo_cccc______tttt _xxxx_dddd_rrrr_oooo_bbbb_jjjj_))))_;;;; Like _xxxx_dddd_rrrr______rrrr_eeee_ffff_eeee_rrrr_eeee_nnnn_cccc_eeee except that it serializes _NNNN_UUUU_LLLL_LLLL pointers, whereas _xxxx_dddd_rrrr______rrrr_eeee_ffff_eeee_rrrr_eeee_nnnn_cccc_eeee does not. Thus, _xxxx_dddd_rrrr______pppp_oooo_iiii_nnnn_tttt_eeee_rrrr can represent recursive data structures, such as binary trees or linked lists. _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______rrrr_eeee_ffff_eeee_rrrr_eeee_nnnn_cccc_eeee_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_aaaa_dddd_dddd_rrrr______tttt _****_pppp_pppp_,,,, _uuuu______iiii_nnnn_tttt _ssss_iiii_zzzz_eeee_,,,, _cccc_oooo_nnnn_ssss_tttt _xxxx_dddd_rrrr_pppp_rrrr_oooo_cccc______tttt _pppp_rrrr_oooo_cccc_))))_;;;; _xxxx_dddd_rrrr______rrrr_eeee_ffff_eeee_rrrr_eeee_nnnn_cccc_eeee provides pointer chasing within structures. The parameter _p_p is the address of the pointer; _s_i_z_e is the _ssss_iiii_zzzz_eeee_oooo_ffff the structure that *_p_p points to; and _p_r_o_c is an XDR procedure that translates the structure between its C form and its external representation. This routine returns _1111 if it succeeds, _0000 otherwise. Note: this routine does not understand _NNNN_UUUU_LLLL_LLLL pointers. Use _xxxx_dddd_rrrr______pppp_oooo_iiii_nnnn_tttt_eeee_rrrr instead. _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______ssss_tttt_rrrr_iiii_nnnn_gggg_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_hhhh_aaaa_rrrr _****_****_ssss_pppp_,,,, _cccc_oooo_nnnn_ssss_tttt _uuuu______iiii_nnnn_tttt _mmmm_aaaa_xxxx_ssss_iiii_zzzz_eeee_))))_;;;; _xxxx_dddd_rrrr______ssss_tttt_rrrr_iiii_nnnn_gggg translates between C strings and their corresponding external representations. Strings cannot be longer than _m_a_x_s_i_z_e. Note: _s_p is the address of the string's pointer. This routine returns _1111 if it succeeds, _0000 otherwise. _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______uuuu_nnnn_iiii_oooo_nnnn_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _eeee_nnnn_uuuu_mmmm______tttt _****_dddd_ssss_cccc_mmmm_pppp_,,,, _cccc_hhhh_aaaa_rrrr _****_uuuu_nnnn_pppp_,,,, _cccc_oooo_nnnn_ssss_tttt _ssss_tttt_rrrr_uuuu_cccc_tttt _xxxx_dddd_rrrr______dddd_iiii_ssss_cccc_rrrr_iiii_mmmm _****_cccc_hhhh_oooo_iiii_cccc_eeee_ssss_,,,, _cccc_oooo_nnnn_ssss_tttt _bbbb_oooo_oooo_llll______tttt _((((_****_dddd_eeee_ffff_aaaa_uuuu_llll_tttt_aaaa_rrrr_mmmm_))))_((((_cccc_oooo_nnnn_ssss_tttt _XXXX_DDDD_RRRR _****_,,,, _cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_,,,, _cccc_oooo_nnnn_ssss_tttt _iiii_nnnn_tttt_))))_))))_;;;; _xxxx_dddd_rrrr______uuuu_nnnn_iiii_oooo_nnnn translates between a discriminated C _uuuu_nnnn_iiii_oooo_nnnn and its corresponding external representation. It first translates the discriminant of the union located at _d_s_c_m_p. This discriminant is always an _eeee_nnnn_uuuu_mmmm______tttt. Next the union located at _u_n_p is translated. The parameter _c_h_o_i_c_e_s is a pointer to an array of _xxxx_dddd_rrrr______dddd_iiii_ssss_cccc_rrrr_iiii_mmmm structures. Each structure contains an ordered pair of [_v_a_l_u_e, _p_r_o_c]. If the union's discriminant is equal to the associated _v_a_l_u_e, then the _p_r_o_c is called to translate the union. The end of the _xxxx_dddd_rrrr______dddd_iiii_ssss_cccc_rrrr_iiii_mmmm structure array is denoted by a routine of value _NNNN_UUUU_LLLL_LLLL. If the discriminant is not found in the _c_h_o_i_c_e_s array, then the _d_e_f_a_u_l_t_a_r_m procedure is called (if it is not _NNNN_UUUU_LLLL_LLLL). Returns _1111 if it succeeds, _0000 otherwise. _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______vvvv_eeee_cccc_tttt_oooo_rrrr_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_hhhh_aaaa_rrrr _****_aaaa_rrrr_rrrr_pppp_,,,, _cccc_oooo_nnnn_ssss_tttt _uuuu______iiii_nnnn_tttt _ssss_iiii_zzzz_eeee_,,,, _cccc_oooo_nnnn_ssss_tttt _uuuu______iiii_nnnn_tttt _eeee_llll_ssss_iiii_zzzz_eeee_,,,, _cccc_oooo_nnnn_ssss_tttt _xxxx_dddd_rrrr_pppp_rrrr_oooo_cccc______tttt _eeee_llll_pppp_rrrr_oooo_cccc_))))_;;;; PPPPaaaaggggeeee 2222 xxxxddddrrrr____ccccoooommmmpppplllleeeexxxx((((3333NNNN)))) xxxxddddrrrr____ccccoooommmmpppplllleeeexxxx((((3333NNNN)))) _xxxx_dddd_rrrr______vvvv_eeee_cccc_tttt_oooo_rrrr translates between fixed-length arrays and their corresponding external representations. The parameter _a_r_r_p is the address of the pointer to the array, while _s_i_z_e is the element count of the array. The parameter _e_l_s_i_z_e is the _ssss_iiii_zzzz_eeee_oooo_ffff each of the array's elements, and _e_l_p_r_o_c is an XDR routine that translates between the array elements' C form and their external representation. This routine returns _1111 if it succeeds, _0000 otherwise. _bbbb_oooo_oooo_llll______tttt _xxxx_dddd_rrrr______wwww_rrrr_aaaa_pppp_ssss_tttt_rrrr_iiii_nnnn_gggg_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_hhhh_aaaa_rrrr _****_****_ssss_pppp_))))_;;;; A routine that calls _xxxx_dddd_rrrr______ssss_tttt_rrrr_iiii_nnnn_gggg_((((_x_d_r_s_,,,, _s_p_,,,, _m_a_x_u_i_n_t_))))_;;;; where _m_a_x_u_i_n_t is the maximum value of an unsigned integer. Many routines, such as _xxxx_dddd_rrrr______aaaa_rrrr_rrrr_aaaa_yyyy, _xxxx_dddd_rrrr______pppp_oooo_iiii_nnnn_tttt_eeee_rrrr and _xxxx_dddd_rrrr______vvvv_eeee_cccc_tttt_oooo_rrrr take a function pointer of type _xxxx_dddd_rrrr_pppp_rrrr_oooo_cccc______tttt, which takes two arguments. _xxxx_dddd_rrrr______ssss_tttt_rrrr_iiii_nnnn_gggg, one of the most frequently used routines, requires three arguments, while _xxxx_dddd_rrrr______wwww_rrrr_aaaa_pppp_ssss_tttt_rrrr_iiii_nnnn_gggg only requires two. For these routines, _xxxx_dddd_rrrr______wwww_rrrr_aaaa_pppp_ssss_tttt_rrrr_iiii_nnnn_gggg is desirable. This routine returns _1111 if it succeeds, _0000 otherwise. SSSSEEEEEEEE AAAALLLLSSSSOOOO _rrrr_pppp_cccc(3N), _xxxx_dddd_rrrr______aaaa_dddd_mmmm_iiii_nnnn(3N), _xxxx_dddd_rrrr______cccc_rrrr_eeee_aaaa_tttt_eeee(3N), _xxxx_dddd_rrrr______ssss_iiii_mmmm_pppp_llll_eeee(3N) PPPPaaaaggggeeee 3333